The user interface has become a significant element of many telecommunication devices, ranging from desktop personal computers to handheld cell phones and personal digital assistants. In early days, the user interface on most devices was monochrome and rudimentary, often limited to simple text display and basic tone output. With advances in both processing power and display and sound driver technology, the user interface has grown to be far more interesting and diverse. Most user interfaces today include full-color high-resolution displays and robust audio output, suitable for presenting images and sounds of all sorts.
One recent trend in user interface technology has been the advent of user interface “skins.” As the name suggests, a user interface “skin” is a format or dressing applied to the core functions of a user interface. Various skins can be provided to a single hardware device by means of loading the device with settings and program code that affect the way the device appears and is used, as will be explained below.
The core functions of a user interface may include elements such as (i) graphical buttons and pull-down menus that a user can select, so as to invoke various device functions, (ii) information-display areas for presenting text, graphics, and other types of information, (iii) borders and visual casings or windows for containing various display elements, (iv) scroll bars that a user can employ to scroll through displayed information, (v) cursors, such as arrows, for pointing to and highlighting buttons or displayed information, and (vi) audio outputs to alert a user of various device states or events. Further, specialized devices or user interfaces may have any of a variety of specialized user interface functions.
A user interface skin typically enhances these or other user interface functions by dressing the functions in thematic graphics and/or sounds. By way of example, a user interface skin may provide (i) special graphics to be displayed as selectable buttons or menus, (ii) special graphics, such as texture-graphics or photographic images, to be displayed as backgrounds, foregrounds, borders, casings, and/or other aspects of the user interface, (iii) cursor graphics, (iv) color schemes, such as border colors, text colors, and button colors, (v) special fonts for displayed text, (vi) and special sounds, such as music or tones to be provided as audio output. Further, a user interface skin can define the arrangement of user interface components, such as the relative positioning of button graphics, menus, informational display sections, and the like, as well as associations between particular sounds and device states and events.
User interface skins can be applied to user interfaces of particular program applications that run on a device or a user interface of the device generally (e.g., to a core device-management application). For example, a particular application may run in its own display window of the device (regardless of whether the window is maximized to fit the entire display screen) and may define its own set of user interface functions. A skin can be applied to such a user interface, in order to enhance visual and/or audible elements of the user interface. As another example, a device may have a core device-management application, such as an operating system application, that supports execution of other applications or implementation of various device functions. Like more specific program applications, the core device-management application may itself define a user interface including user interface functions such as those described above. And a skin can be similarly applied to such a user interface to enhance various elements of the user interface.
A given user interface can have a permanent skin that is hard coded as an integral aspect of the user interface at the time of application-design or device-manufacture. Alternatively, a user interface can be arranged to have any of a variety of skins selected by a user. By way of example, a device or application may come pre-set with a number of skins that a user can select to apply to the user interface. Through an “options” menu, for instance, the user may select a desired skin, and the device or application may apply that skin to the user interface. As another example, a user may visit a website to acquire a new skin for a given user interface and may then direct the device or application to apply that new skin to the user interface.
User interface skins can be encoded and applied to user interfaces in any of a variety of ways. Some skins may be encoded in a way that uniquely relates to a particular user interface, such as in the form of executable code that sets attributes of specific user interface objects (possibly unique to a particular application). Other skins may be defined in a more open manner, such as with an extensible markup language (XML) script or as a skin object that can be interpreted and applied by a user-interface skin-interpretation program.
An example of user interface skins are those provided by Qualcomm Inc., of San Diego, Calif. (formerly by Trigenix Limited, of Cambridge, UK), for use on wireless handheld devices such as cell phones and personal digital assistants. Qualcomm encodes user interface skins (or skin updates) with industry standard XML, to define precise positioning and appearance of user interface elements on the relatively small display screens of wireless handheld devices. Qualcomm provides a skin development application called Trigbuilder™, which allows building, testing and debugging of XML-based skins or skin updates called “Trigs” or “Triglets”. Qualcomm then provides an application called Trigplayer™, which runs on a wireless handset and is arranged to receive and render a Trig or Triglet defining a particular skin or skin update and to apply the skin or skin update to the user interface of the handset. Further, Qualcomm provides a Trigserver™ application that runs on a network server and manages Trigs and Triglets to facilitate transmission of the Trigs and Triglets over the air to wireless handsets.